[C] POSIX Threads
Publicado por Enzo de Brito Ferber 26/01/2009
[ Hits: 7.083 ]
Homepage: http://www.maximasonorizacao.com.br
O foco deste programa é fazer com que o processo filho criado por fork() não seja terminado quando o processo pai termina, e para isso, usei threads. Para terminar o programa, digite no terminal:
kill <child_pid>
O child_pid é mostrado ao usuário quando o programa é executado. Bem legal :)
// pthread2.c
/*
* Enzo Ferber : <enzo@veloxmail.com.br>
*
* POSIX Threads Test 2
* @ Exit parent and go on with child.
*
* $ gcc -lpthread -o pthread2 pthread2.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> // getpid
#include <pthread.h> // POSIX Threads
#include <sys/types.h> // getpid
// child in infinite loop
void *childfunction ( void *ptr )
{
pthread_t self = pthread_self ();
pthread_detach ( self );
for ( ; ; )
{
printf ( "[*] Here I am again ... \n");
sleep (2);
}
}
// main function
int main ( int argc, char *argv[] )
{
pthread_t child;
int cret; // child pthread_create () return
// child
if ( !fork() )
{
printf ( "[*] Child proccess begining ... \n" );
cret = pthread_create ( &child, NULL, childfunction, NULL );
printf ( "[*] Child PID: %d\n", getpid () );
pthread_join ( child, NULL );
}
// parent
else
{
printf ( "[*] Parent PID: %d\n", getpid () );
printf ( "[*] Aborting parent ...\n" );
exit (0);
}
// end main
return 0;
}
// EoF
Exemplo de sistema especialista usando Inteligência Artificial
Nenhum comentário foi encontrado.
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Conheça o Zashterminal, um terminal moderno com IA
DOOM Carniceiro: rode o Meatgrinder com uzdoom (Gentoo e Ubuntu)
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Linux MInt nao reconhece placa de som (1)
Midia de instalação LM-21.3 não inicializa (12)









